#ifndef MAINSCENCE_H
#define MAINSCENCE_H

#include <QMainWindow>
#include<QTimer>
#include"map.h"
#include<QPainter>
#include"heroplane.h"
#include"bullet.h"
#include"enemyplane.h"
#include"bomb.h"

QT_BEGIN_NAMESPACE
namespace Ui { class Mainscence; }
QT_END_NAMESPACE

class Mainscence : public QMainWindow
{
    Q_OBJECT

public:
    Mainscence(QWidget *parent = nullptr);
    ~Mainscence();



    void initScene();//初始化场景


    /*****************/
    private:
        bool m_upKeyPressed;
        bool m_downKeyPressed;
        bool m_leftKeyPressed;
        bool m_rightKeyPressed;

    protected:
        void keyPressEvent(QKeyEvent* event) override;
        void keyReleaseEvent(QKeyEvent* event) override;

    public:
        void gameLoop();

    /******************************/

    //启动游戏
    void playGame();

    //更新所有游戏中元素的坐标
    void updatePosition();

    //绘制到屏幕中 (系统函数，函数名称不可以改)
    void paintEvent(QPaintEvent *);

    //重写鼠标移动事件，实现飞机移动 (系统函数，函数名称不可以改)
    void mouseMoveEvent(QMouseEvent *);

    //敌机出场
    void enemyToScene();

    //敌机数组
    EnemyPlane m_enemys[ENEMY_NUM];

    //敌机出场间隔记录
    int m_recorder;


    //地图对象
    map m_map;


    //飞机对象
    HeroPlane m_hero;

    //定时器
    QTimer m_Timer;

    //子弹对象(测试用)
    //Bullet temp_Bullet;

    //碰撞检测
    void collisionDetection();

    //爆炸数组
    bomb m_bombs[BOMB_NUM];


private:
    Ui::Mainscence *ui;
};




#endif // MAINSCENCE_H
